/////////////////////////////////////////////////////////////////////////
//
// Amuse Engine SDK - core/math
// Copyright (c) 2014.  All Rights Reserved
//
// File:		AEMathEnums.cpp
// Author:		Gianluca Belardelli
// Date:		04/02/2014
//
/////////////////////////////////////////////////////////////////////////
#include <AECore.h>

#define INV_3	1.0f / 3.0f
#define INV_4	1.0f / 4.0f
#define INV_5	1.0f / 5.0f
#define INV_6	1.0f / 6.0f
#define INV_7	1.0f / 7.0f
#define INV_8	1.0f / 8.0f

AE_COREDLLIMPEXP const AEQuadFloat32 g_vectorfConstants[AE_QUADREAL_END] = {
	{ -1.0f, -1.0f, -1.0f, -1.0f },			// AE_QUADREAL_MINUS1
	{ 0.0f, 0.0f, 0.0f, 0.0f },				// AE_QUADREAL_0
	{ 1.0f, 1.0f, 1.0f, 1.0f },				// AE_QUADREAL_1
	{ 2.0f, 2.0f, 2.0f, 2.0f },				// AE_QUADREAL_2
	{ 3.0f, 3.0f, 3.0f, 3.0f },				// AE_QUADREAL_3
	{ 4.0f, 4.0f, 4.0f, 4.0f },				// AE_QUADREAL_4
	{ 5.0f, 5.0f, 5.0f, 5.0f },				// AE_QUADREAL_5
	{ 6.0f, 6.0f, 6.0f, 6.0f },				// AE_QUADREAL_6
	{ 7.0f, 7.0f, 7.0f, 7.0f },				// AE_QUADREAL_7
	{ 8.0f, 8.0f, 8.0f, 8.0f },				// AE_QUADREAL_8
	{ 15.0f, 15.0f, 15.0f, 15.0f },			// AE_QUADREAL_15
	{ 16.0f, 16.0f, 16.0f, 16.0f },			// AE_QUADREAL_16
	{ 255.0f, 255.0f, 255.0f, 255.0f },		// AE_QUADREAL_255
	{ 256.0f, 256.0f, 256.0f, 256.0f },		// AE_QUADREAL_256
	{ 0.0f, 0.0f, 0.0f, 0.0f },				// AE_QUADREAL_2_POW_23
	{ 0.0f, 0.0f, 0.0f, 0.0f },				// AE_QUADREAL_INV_0 0.0f, 0.0f, 0.0f
	{ 1.0f, 1.0f, 1.0f, 1.0f },				// AE_QUADREAL_INV_1 1 1 1 1
	{ 0.5f, 0.5f, 0.5f, 0.5f },				// AE_QUADREAL_INV_2 .5 .5 .5 .5
	{ INV_3, INV_3, INV_3, INV_3 },			// AE_QUADREAL_INV_3 1/3 1/3 1/3 1/3
	{ INV_4, INV_4, INV_4, INV_4 },			// AE_QUADREAL_INV_4
	{ INV_5, INV_5, INV_5, INV_5 },			// AE_QUADREAL_INV_5
	{ INV_6, INV_6, INV_6, INV_6 },			// AE_QUADREAL_INV_6
	{ INV_7, INV_7, INV_7, INV_7 },			// AE_QUADREAL_INV_7
	{ INV_8, INV_8, INV_8, INV_8 },			// AE_QUADREAL_INV_8
	{ 0.0f, 0.0f, 0.0f, 0.0f },				// AE_QUADREAL_INV_15 1/15 x 4
	{ 0.0f, 0.0f, 0.0f, 0.0f },				// AE_QUADREAL_INV_127 1/127 x 4
	{ 0.0f, 0.0f, 0.0f, 0.0f },				// AE_QUADREAL_INV_226 1/226 x 4, Used to unpack AABB.
	{ 0.0f, 0.0f, 0.0f, 0.0f },				// AE_QUADREAL_INV_255 1/255 x 4
	{ 1.0f, 0.0f, 0.0f, 0.0f },				// AE_QUADREAL_1000
	{ 0.0f, 1.0f, 0.0f, 0.0f },				// AE_QUADREAL_0100
	{ 0.0f, 0.0f, 1.0f, 0.0f },				// AE_QUADREAL_0010
	{ 0.0f, 0.0f, 0.0f, 1.0f }				// AE_QUADREAL_0001
};